Code-division-multiple-access (CDMA) methods have been used in satellite communication and wireless telephony. CDMA methods are spread-spectrum methods for multiplexing and demultiplexing a plurality of data-carrying electromagnetic signals onto a single transmission medium. These data signals are distinguished by encoding with different complex spectral or temporal codes. The resultant spectra of the encoded data signals are much broader than the spectra of the uncoded data signals. The number of data signals that can be successfully multiplexed and demultiplexed in a CDMA system is dependent on the complexity of the coding. CDMA codes are traditionally divided into "chips," defined as a temporal duration of the shortest temporal feature encoded onto the data signal. Larger numbers of chips permit larger numbers of users, or, alternatively, the less inter-user interference for a fixed number of multiplexed data signals.
Radio-frequency (RF) CDMA makes use of binary phase codes in which each chip assumes one of two values for the phase of the electromagnetic field that carries data signals. Such binary codes can be generated in real time with fast sequences of shift registers. Code-generation algorithms for the production of binary CDMA code sets include algorithms that generate Gold codes, Kasami codes, maximal sequence length codes, JPL codes, and Walsh codes.
One alternative to using these code sets is to generate new code sets with Monte Carlo or other code-search algorithms. However, as the number of code chips increases, the computational time of these algorithms becomes impractically long. This computational time is further increased if non-binary CDMA code sets are needed, i.e., codes having chips that assume more than two levels.
Optical CDMA systems use passive optical encoding and decoding with, for example, diffraction gratings. Since the coding and encoding are performed passively, no fast digital logic is needed to encode or decode the optical signal. Therefore, optical CDMA systems are not limited to the binary phase or amplitude codes used in RF CDMA.
Finding new code sets, particularly for use in optical communication systems can be difficult and time-consuming. Therefore, methods and apparatus for generating code sets and especially large-chip-number code sets having predictable cross-talk characteristics are needed. Also needed are encoders and decoders for encoding and decoding, respectively, an optical field or other electromagnetic signal using such codes.